<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkScrollbar: GTK+ 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
<link rel="up" href="ScrollingWidgets.html" title="Scrolling">
<link rel="prev" href="ScrollingWidgets.html" title="Scrolling">
<link rel="next" href="GtkScrolledWindow.html" title="GtkScrolledWindow">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GtkScrollbar.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GtkScrollbar.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                  <a href="#GtkScrollbar.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_style_properties">  <span class="dim">|</span> 
                  <a href="#GtkScrollbar.style-properties" class="shortcut">Style Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ScrollingWidgets.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ScrollingWidgets.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GtkScrolledWindow.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GtkScrollbar"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GtkScrollbar.top_of_page"></a>GtkScrollbar</span></h2>
<p>GtkScrollbar — A Scrollbar</p>
</td>
<td class="gallery_image" valign="top" align="right"><img src="scrollbar.png"></td>
</tr></table></div>
<div class="refsect1">
<a name="GtkScrollbar.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody><tr>
<td class="function_type">
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkScrollbar.html#gtk-scrollbar-new" title="gtk_scrollbar_new ()">gtk_scrollbar_new</a> <span class="c_punctuation">()</span>
</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkScrollbar.style-properties"></a><h2>Style Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="style_properties_type">
<col width="300px" class="style_properties_name">
<col width="200px" class="style_properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkScrollbar.html#GtkScrollbar--s-fixed-slider-length" title="The “fixed-slider-length” style property">fixed-slider-length</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkScrollbar.html#GtkScrollbar--s-has-backward-stepper" title="The “has-backward-stepper” style property">has-backward-stepper</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkScrollbar.html#GtkScrollbar--s-has-forward-stepper" title="The “has-forward-stepper” style property">has-forward-stepper</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkScrollbar.html#GtkScrollbar--s-has-secondary-backward-stepper" title="The “has-secondary-backward-stepper” style property">has-secondary-backward-stepper</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkScrollbar.html#GtkScrollbar--s-has-secondary-forward-stepper" title="The “has-secondary-forward-stepper” style property">has-secondary-forward-stepper</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkScrollbar.html#GtkScrollbar--s-min-slider-length" title="The “min-slider-length” style property">min-slider-length</a></td>
<td class="property_flags">Read</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkScrollbar.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GtkScrollbar.html#GtkScrollbar-struct" title="struct GtkScrollbar">GtkScrollbar</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkScrollbar.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GInitiallyUnowned
        <span class="lineart">╰──</span> <a class="link" href="GtkWidget.html" title="GtkWidget">GtkWidget</a>
            <span class="lineart">╰──</span> <a class="link" href="GtkRange.html" title="GtkRange">GtkRange</a>
                <span class="lineart">╰──</span> GtkScrollbar
                    <span class="lineart">├──</span> <a class="link" href="GtkHScrollbar.html" title="GtkHScrollbar">GtkHScrollbar</a>
                    <span class="lineart">╰──</span> <a class="link" href="GtkVScrollbar.html" title="GtkVScrollbar">GtkVScrollbar</a>
</pre>
</div>
<div class="refsect1">
<a name="GtkScrollbar.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GtkScrollbar implements
 AtkImplementorIface,  <a class="link" href="GtkBuildable.html" title="GtkBuildable">GtkBuildable</a> and  <a class="link" href="gtk3-Orientable.html#GtkOrientable">GtkOrientable</a>.</p>
</div>
<div class="refsect1">
<a name="GtkScrollbar.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtk/gtk.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GtkScrollbar.description"></a><h2>Description</h2>
<p>The <a class="link" href="GtkScrollbar.html" title="GtkScrollbar"><span class="type">GtkScrollbar</span></a> widget is a horizontal or vertical scrollbar,
depending on the value of the <a class="link" href="gtk3-Orientable.html#GtkOrientable--orientation" title="The “orientation” property"><span class="type">“orientation”</span></a> property.</p>
<p>Its position and movement are controlled by the adjustment that is passed to
or created by <a class="link" href="GtkScrollbar.html#gtk-scrollbar-new" title="gtk_scrollbar_new ()"><code class="function">gtk_scrollbar_new()</code></a>. See <a class="link" href="GtkAdjustment.html" title="GtkAdjustment"><span class="type">GtkAdjustment</span></a> for more details. The
<a class="link" href="GtkAdjustment.html#GtkAdjustment--value" title="The “value” property"><span class="type">“value”</span></a> field sets the position of the thumb and must be between
<a class="link" href="GtkAdjustment.html#GtkAdjustment--lower" title="The “lower” property"><span class="type">“lower”</span></a> and <a class="link" href="GtkAdjustment.html#GtkAdjustment--upper" title="The “upper” property"><span class="type">“upper”</span></a> - <a class="link" href="GtkAdjustment.html#GtkAdjustment--page-size" title="The “page-size” property"><span class="type">“page-size”</span></a>. The
<a class="link" href="GtkAdjustment.html#GtkAdjustment--page-size" title="The “page-size” property"><span class="type">“page-size”</span></a> represents the size of the visible scrollable area.
The fields <a class="link" href="GtkAdjustment.html#GtkAdjustment--step-increment" title="The “step-increment” property"><span class="type">“step-increment”</span></a> and <a class="link" href="GtkAdjustment.html#GtkAdjustment--page-increment" title="The “page-increment” property"><span class="type">“page-increment”</span></a>
fields are added to or subtracted from the <a class="link" href="GtkAdjustment.html#GtkAdjustment--value" title="The “value” property"><span class="type">“value”</span></a> when the user
asks to move by a step (using e.g. the cursor arrow keys or, if present, the
stepper buttons) or by a page (using e.g. the Page Down/Up keys).</p>
<div class="refsect2">
<a name="id-1.3.16.2.9.4"></a><h3>CSS nodes</h3>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="n">scrollbar</span><span class="p">[.</span><span class="n">fine</span><span class="o">-</span><span class="n">tune</span><span class="p">]</span>
<span class="err">╰──</span> <span class="n">contents</span>
    <span class="err">├──</span> <span class="p">[</span><span class="n">button</span><span class="p">.</span><span class="n">up</span><span class="p">]</span>
    <span class="err">├──</span> <span class="p">[</span><span class="n">button</span><span class="p">.</span><span class="n">down</span><span class="p">]</span>
    <span class="err">├──</span> <span class="n">trough</span>
    <span class="err">│</span>   <span class="err">╰──</span> <span class="n">slider</span>
    <span class="err">├──</span> <span class="p">[</span><span class="n">button</span><span class="p">.</span><span class="n">up</span><span class="p">]</span>
    <span class="err">╰──</span> <span class="p">[</span><span class="n">button</span><span class="p">.</span><span class="n">down</span><span class="p">]</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>GtkScrollbar has a main CSS node with name scrollbar and a subnode for its
contents, with subnodes named trough and slider.</p>
<p>The main node gets the style class .fine-tune added when the scrollbar is
in 'fine-tuning' mode.</p>
<p>If steppers are enabled, they are represented by up to four additional
subnodes with name button. These get the style classes .up and .down to
indicate in which direction they are moving.</p>
<p>Other style classes that may be added to scrollbars inside <a class="link" href="GtkScrolledWindow.html" title="GtkScrolledWindow"><span class="type">GtkScrolledWindow</span></a>
include the positional classes (.left, .right, .top, .bottom) and style
classes related to overlay scrolling (.overlay-indicator, .dragging, .hovering).</p>
</div>
</div>
<div class="refsect1">
<a name="GtkScrollbar.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gtk-scrollbar-new"></a><h3>gtk_scrollbar_new ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
gtk_scrollbar_new (<em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkOrientation" title="enum GtkOrientation"><span class="type">GtkOrientation</span></a> orientation</code></em>,
                   <em class="parameter"><code><a class="link" href="GtkAdjustment.html" title="GtkAdjustment"><span class="type">GtkAdjustment</span></a> *adjustment</code></em>);</pre>
<p>Creates a new scrollbar with the given orientation.</p>
<div class="refsect3">
<a name="gtk-scrollbar-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>orientation</p></td>
<td class="parameter_description"><p>the scrollbar’s orientation.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>adjustment</p></td>
<td class="parameter_description"><p>the <a class="link" href="GtkAdjustment.html" title="GtkAdjustment"><span class="type">GtkAdjustment</span></a> to use, or <code class="literal">NULL</code> to create a new adjustment. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-scrollbar-new.returns"></a><h4>Returns</h4>
<p>  the new <a class="link" href="GtkScrollbar.html" title="GtkScrollbar"><span class="type">GtkScrollbar</span></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
</div>
<div class="refsect1">
<a name="GtkScrollbar.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GtkScrollbar-struct"></a><h3>struct GtkScrollbar</h3>
<pre class="programlisting">struct GtkScrollbar;</pre>
</div>
</div>
<div class="refsect1">
<a name="GtkScrollbar.style-property-details"></a><h2>Style Property Details</h2>
<div class="refsect2">
<a name="GtkScrollbar--s-fixed-slider-length"></a><h3>The <code class="literal">“fixed-slider-length”</code> style property</h3>
<pre class="programlisting">  “fixed-slider-length”      <span class="type">gboolean</span></pre>
<p>Don't change slider size, just lock it to the minimum length.</p>
<p>Owner: GtkScrollbar</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkScrollbar--s-has-backward-stepper"></a><h3>The <code class="literal">“has-backward-stepper”</code> style property</h3>
<pre class="programlisting">  “has-backward-stepper”     <span class="type">gboolean</span></pre>
<p>Display the standard backward arrow button.</p>
<p>Owner: GtkScrollbar</p>
<p>Flags: Read</p>
<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkScrollbar--s-has-forward-stepper"></a><h3>The <code class="literal">“has-forward-stepper”</code> style property</h3>
<pre class="programlisting">  “has-forward-stepper”      <span class="type">gboolean</span></pre>
<p>Display the standard forward arrow button.</p>
<p>Owner: GtkScrollbar</p>
<p>Flags: Read</p>
<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkScrollbar--s-has-secondary-backward-stepper"></a><h3>The <code class="literal">“has-secondary-backward-stepper”</code> style property</h3>
<pre class="programlisting">  “has-secondary-backward-stepper” <span class="type">gboolean</span></pre>
<p>Display a second backward arrow button on the opposite end of the scrollbar.</p>
<p>Owner: GtkScrollbar</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkScrollbar--s-has-secondary-forward-stepper"></a><h3>The <code class="literal">“has-secondary-forward-stepper”</code> style property</h3>
<pre class="programlisting">  “has-secondary-forward-stepper” <span class="type">gboolean</span></pre>
<p>Display a second forward arrow button on the opposite end of the scrollbar.</p>
<p>Owner: GtkScrollbar</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkScrollbar--s-min-slider-length"></a><h3>The <code class="literal">“min-slider-length”</code> style property</h3>
<pre class="programlisting">  “min-slider-length”        <span class="type">int</span></pre>
<p>Minimum length of scrollbar slider.</p>
<div class="warning">
<p><code class="literal">GtkScrollbar:min-slider-length</code> has been deprecated since version 3.20 and should not be used in newly-written code.</p>
<p>Use min-height/min-width CSS properties on the slider
  element instead. The value of this style property is ignored.</p>
</div>
<p>Owner: GtkScrollbar</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 21</p>
</div>
</div>
<div class="refsect1">
<a name="GtkScrollbar.see-also"></a><h2>See Also</h2>
<p><a class="link" href="GtkAdjustment.html" title="GtkAdjustment"><span class="type">GtkAdjustment</span></a>, <a class="link" href="GtkScrolledWindow.html" title="GtkScrolledWindow"><span class="type">GtkScrolledWindow</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>